import org.spal.Local
import org.spal.Locatario
import org.spal.Rol
import org.spal.Usuario
import org.spal.UsuarioRol
import grails.converters.JSON

class BootStrap {

	def init = { servletContext ->
		def springSecurityService
		//		def local = new Local(nombre:'Chuchulucos', descripcion:'Tostiesquites', habilitado:true, fechaRegistro:new Date())
		//		local.locatario = usuario
		//		usuario.local = local
		//		local.save(flush:true)
		//		usuario.save(flush:true)

		def rolAdmin = Rol.findByAuthority('ROLE_ADMIN')
		def rolLocatario = Rol.findByAuthority('ROLE_LOCATARIO')
		def rolCliente = Rol.findByAuthority('ROLE_CLIENTE')
		def rolUser = Rol.findByAuthority('ROLE_USER')
		def usuario = Usuario.findByUsername('admin')

		if(!rolAdmin)
			rolAdmin = new Rol(authority:'ROLE_ADMIN').save(flush:true)
		if(!rolLocatario)
			rolLocatario = new Rol(authority:'ROLE_LOCATARIO').save(flush:true)
		if(!rolCliente)
			rolCliente = new Rol(authority:'ROLE_CLIENTE').save(flush:true)
		if(!rolUser)
			rolUser = new Rol(authority:'ROLE_USER').save(flush:true)
		if(!usuario){
			usuario = new Usuario(username: 'admin', password:'admin', enabled:true, nombre:'Mario',apellidos:'Juarez Curiel', email:'mariojuarezc@gmail.com').save(flush:true)
			UsuarioRol.create usuario,rolAdmin
		}

		JSON.registerObjectMarshaller(Local) {
			def output = [:]
			output['id'] = it.id
			output['version'] = it.version
			output['nombre'] = it.nombre
			output['descripcion'] = it.descripcion
			output['habilitado'] = it.habilitado
			output['fechaRegistro'] = it.fechaRegistro
			output['username'] = it.locatario.username
			output['password'] = it.locatario.password
			output['email'] = it.locatario.email
			output['locatario_nombre'] = it.locatario.nombre
			output['locatario_apellidos'] = it.locatario.apellidos
			output['locatario_direccion'] = it.locatario.direccion
			output['locatario_nombre_completo'] = it.locatario.nombre + " " + it.locatario.apellidos
			return output;
		}
	}
	def destroy = {
	}
}
